package view;

import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;

import model.Model;
import controler.Controler;
import enums.Texte;

public class Hauptfenster extends MenuBar {

	private Model model;
	private Controler controler;

	private Scene scene;
	
	private Menu jmDatei;
	private MenuItem jmiBeenden;

	private Menu jmFirmen;
	private MenuItem jmiFirmenVerw;
	private MenuItem jmiNeueFirma;

	private Menu jmMitarbeiter;
	private MenuItem jmiKontaktVerw;
	private MenuItem jmiKontaktNeu;

	private Menu jmProjekte;
	private MenuItem jmiProjektVerw;

	private EventHandler<ActionEvent> myActionListener;

	/**
	 * Konstruktor
	 * 
	 * @param controler
	 * @param model
	 * @param dlgNeueFirma
	 */
	public Hauptfenster(Model model, Controler controler) {
		super();

		myActionListener = new MyActionListener();

		this.model = model;
		this.controler = controler;
		
		initWidgets();
		
		addWidgets();
	}

	/**
	 * 
	 */
	private void initWidgets() {

		// Datei
		jmDatei = new Menu("Datei");
		jmiBeenden = new MenuItem("Beenden");
		jmiBeenden.setOnAction(myActionListener);

		// Firmen
		jmFirmen = new Menu("Firmen");
		jmiFirmenVerw = new MenuItem(Texte.firmaVerw.toString());
		jmiFirmenVerw.setOnAction(myActionListener);

		jmiNeueFirma = new MenuItem(Texte.neueFirma.toString());
		jmiNeueFirma.setOnAction(myActionListener);

		// Mitarbeiter
		jmMitarbeiter = new Menu("Mitarbeiter");

		jmiKontaktVerw = new MenuItem("Kontaktverwaltung");
		jmiKontaktVerw.setOnAction(myActionListener);

		jmiKontaktNeu = new MenuItem(Texte.kontaktNeu.toString());
		jmiKontaktNeu.setOnAction(myActionListener);

		// Projekte
		jmProjekte = new Menu("Projekte");
		jmiProjektVerw = new MenuItem("Projekte Verwaltung");
		jmiProjektVerw.setOnAction(myActionListener);
	}

	/**
	 * 
	 */
	private void addWidgets() {
		jmDatei.getItems().add(jmiBeenden);
		
		jmFirmen.getItems().addAll(jmiFirmenVerw, jmiNeueFirma);
		
		jmMitarbeiter.getItems().addAll(jmiKontaktVerw, jmiKontaktNeu);
		
		jmProjekte.getItems().add(jmiProjektVerw);
		
		getMenus().addAll(jmDatei, jmFirmen, jmMitarbeiter, jmProjekte);
	}

	private class MyActionListener implements EventHandler<ActionEvent> {

		@Override
		public void handle(ActionEvent e) {
			// Beenden
			if (e.getSource() == jmiBeenden) {
				controler.setBeenden();
			}

			// Firmenverwaltung
			if (e.getSource() == jmiFirmenVerw) {
				controler.setFenster(Texte.firmaVerw.toString());
			}

			// Neue Firma
			if (e.getSource() == jmiNeueFirma) {
				controler.setFenster(Texte.neueFirma.toString());
			}

			// Firmenverwaltung
			if (e.getSource() == jmiKontaktVerw) {
				controler.setFenster(Texte.kontaktVerw.toString());
			}

			// Neuer Kontakt
			if (e.getSource() == jmiKontaktNeu) {
				controler.setFenster(Texte.kontaktNeu.toString());
			}
		}
	}
}
